import { CHANGE_TAB, GET_FILTER_DATA, CHANGE_FILTER, CHANGE_IS_SHOW, GET_FILTER_RESULT } from './actionTypes.js'
import api from "../../../http/api";

// 更改tab
export const changeTab = (obj)=>{
    return {
        type: CHANGE_TAB,
        obj: obj
    }
}

// 更改要打开显示的筛选类型
export const changeOpenKey = (obj)=>{
    return {
        type: CHANGE_FILTER,
        obj: obj
    }
}

// 更改筛选面板展示与隐藏
export const changeIsShow = (obj)=>{
    return {
        type: CHANGE_IS_SHOW,
        obj: obj
    }
}

// 点击选中某一个tab
export const selectTab = (obj)=> (dispatch) =>{

    // 第一步：设置选中了哪个tab
    dispatch({
        type: CHANGE_TAB,
        obj: obj
    })

    // 第二步：设置显示哪个筛选面板
    dispatch({
        type: CHANGE_FILTER,
        obj: obj
    })

    // 第三步：设置面板展示
    dispatch({
        type: CHANGE_IS_SHOW,
        obj: obj
    })
}

// 关闭筛选面板
export const closePanel = ()=> (dispatch) =>{

    // 第一步：清空选中的tab
    dispatch({
        type: CHANGE_TAB,
        obj: {
            activeKey: ''
        }
    })

    // 第二步：清空要显示筛选面板
    dispatch({
        type: CHANGE_FILTER,
        obj: {
            openPanelKey: ''
        }
    })

    // 第三步：设置面板隐藏
    dispatch({
        type: CHANGE_IS_SHOW,
        obj: {
            isShowPanel: false
        }
    })
}

// 获取筛选结果
export const getFilterResult = (obj) => (dispatch) => {
    dispatch({
        type: GET_FILTER_RESULT,
        obj: obj
    })

    dispatch({
        type: CHANGE_IS_SHOW,
        obj: {
            isShowPanel: false
        }
    })
    // 第一步：清空选中的tab
    dispatch({
        type: CHANGE_TAB,
        obj: {
            activeKey: ''
        }
    })

    // 第二步：清空要显示筛选面板
    dispatch({
        type: CHANGE_FILTER,
        obj: {
            openPanelKey: ''
        }
    })
}

const getData = (obj) => {
    return {
        type: GET_FILTER_DATA,
        obj: obj
    }
}

// 获取筛选的全部数据
export const getFilterData = () => (dispatch) => {
    api.getFilterData({}).then((res) => {
        dispatch(getData({
            data: res.data
        }))
    })
}
